package com.oz.project.test;

import java.math.BigDecimal;
import java.util.List;
import java.util.function.BinaryOperator;
import java.util.stream.Stream;

import org.apache.commons.compress.utils.Lists;
import org.junit.Test;

/**
 * @Package com.oz.project.test
 * @Auther: WB537866-无尽
 * @Date: 2019/12/20 15:59
 */
public class Java8StreamTEST {
    private Stream<Integer> s = Stream.of(1, 2, 3, 4, 5, 6);

    @Test
    public void streamReduce() {
        /**
         * 求和，也可以写成Lambda语法：
         * Integer sum = s.reduce((a, b) -> a + b).get();
         */
        Integer sum = s.reduce((a, b) -> a + b).get();
        System.out.println(sum);
        BigDecimal bigDecimal = new BigDecimal(5);
        List<BigDecimal> list = Lists.newArrayList();
        list.add(bigDecimal);
        list.add(bigDecimal.add(new BigDecimal(1)));
        list.add(bigDecimal.add(new BigDecimal(1)));
        list.add(bigDecimal.add(new BigDecimal(1)));
        BigDecimal bigDecimal1 = list.stream().reduce(BigDecimal::add).get();
        BigDecimal bigDecimal2 = list.stream().reduce(new BigDecimal(4),BigDecimal::add);
        System.out.println(bigDecimal1);
        System.out.println(bigDecimal2);
    }
}
